<HTML><HEAD><TITLE>++ImplSpec tent_implements ++ConsSpec</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(tentative)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>++ImplSpec tent_implements ++ConsSpec</H1>
Associate a constraint with a tentative value implementation
<DL>
<DT><EM>ImplSpec</EM></DT>
<DD>Term of the form Atom/Integer
</DD>
<DT><EM>ConsSpec</EM></DT>
<DD>Term of the form Atom/Integer
</DD>
</DL>
<H2>Description</H2>

	This declaration is part of the constraint implementation interface.
	It links the name/arity of the constraint in the constraint model to
	the name/arity of the predicate that implements the tentative value
	semantics of the constraint.  For example, the declaration
	<PRE>
	    :- alldifferent_t/2 tent_implements alldifferent/1.
	</PRE>
	means that whenever an alldifferent/1 constraint is added to a
	constraint set, e.g. by using
	<PRE>
	    ..., CSet :~ alldifferent(List), ...
	</PRE>
	then the alldifferent_t(List, Monitor) is invoked to implement
	this constraint.
    
<H3>Modes and Determinism</H3><UL>
<LI>tent_implements(++, ++) is det
</UL>
<H3>Modules</H3>
This predicate is sensitive to its module context (tool predicate, see @/2).
<H2>See Also</H2>
<A HREF="../../lib/tentative/NT-2.html">:~ / 2</A>
</BODY></HTML>
